From: Keir Fraser Date: Thu, 10 Jul 2008 10:26:42 +0000 (+0100) Subject: intel: Stricter check for cpuid feature mask MSR availability. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14188^2~60 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=79961b311e61cb274d817d15e073ad511918a36e;p=xen.git intel: Stricter check for cpuid feature mask MSR availability. Signed-off-by: Liping Ke Signed-off-by: Jun Nakajima Signed-off-by: Keir Fraser --- diff --git a/xen/arch/x86/cpu/intel.c b/xen/arch/x86/cpu/intel.c index 1025097d21..f8fdb8af28 100644 --- a/xen/arch/x86/cpu/intel.c +++ b/xen/arch/x86/cpu/intel.c @@ -37,13 +37,14 @@ struct movsl_mask movsl_mask __read_mostly; static void __devinit set_cpuidmask(void) { - unsigned int eax, ebx, ecx, edx; + unsigned int eax, ebx, ecx, edx, model; if (!(opt_cpuid_mask_ecx | opt_cpuid_mask_edx)) return; cpuid(0x00000001, &eax, &ebx, &ecx, &edx); - if (eax < 0x00010674) { + model = ((eax & 0xf0000) >> 12) | ((eax & 0xf0) >> 4); + if (!((model == 0x1d) || ((model == 0x17) && ((eax & 0xf) >= 4)))) { printk(XENLOG_ERR "Cannot set CPU feature mask on CPU#%d\n", smp_processor_id()); return;